package com.huo.designmode.singleton;

/**
 * 多线程环境下-懒汉式不能保证只有一个实例对象
 */
public class Person3 {
    private String name;
    private static Person3 person3;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    //提供一个全局的获取person3的方法
    public static Person3 getperson3_1() {
        if (person3 ==null){
            return new Person3();
        }
        return person3;
    } 
    
    public static Person3 getperson3_2() {
        if (person3 ==null){
            return new Person3();
        }
        return person3;
    }
        public static Person3 getperson3_3() {
        if (person3 == null){
            //https://blog.csdn.net/weixin_44127579/article/details/89861977 类锁(class) https://zhidao.baidu.com/question/1988017083031297707.html
            synchronized (Person3.class){
                //使用双重检测机制，保证这里的方法只执行一次同步，只是在第一次执行的时候两个线程阻塞
                if (person3 ==null){
                    return new Person3();

                }
            }
        }
        return person3;
    }
    
    
    

    public static void setperson3(Person3 person3) {
        Person3.person3 = person3;
    }
}
